import { createRouter, createWebHistory } from 'vue-router'
import { useUserStore } from '@/stores'
//1.history模式 地址栏不带 #
//2.hash模式  地址栏带#

// vite中的环境变量 import.meta.env.BASE_URL就是vite.config.js中的base 配置项
const router = createRouter({
  history: createWebHistory(import.meta.env.BASE_URL),
  routes: [
    {path:'/login',component:()=>import('@/views/Login/LoginPage.vue')},
    {
      path:'/',
      component:()=>import('@/views/Layout/LayoutContainer.vue'),
      redirect:'/admin/manage',
      children:[
        {
          path:'/admin/manage',
          component:()=>import('@/views/Admin/AdminPage.vue')
        },
        {
          path:'/admin/mine',
          component:()=>import('@/views/Admin/MinePage.vue')
        },
        {
          path:'/admin/pwd',
          component:()=>import('@/views/Admin/UpdatePwdPage.vue')
        },
        {
          path:'/guest/manage',
          component:()=>import('@/views/Guest/GuestPage.vue')
        },
        {
          path:'/role/manage',
          component:()=>import('@/views/Role/RolePage.vue')
        },
        {
          path:'/room/manage',
          component:()=>import('@/views/Room/RoomPage.vue')
        },
        {
          path:'/type/manage',
          component:()=>import('@/views/Type/TypePage.vue')
        },
        {
          path:'/total/manage',
          component:()=>import('@/views/Total/TotalPage.vue')
        },
      ]
    }
  ]
})
//登录访问拦截=>默认是直接放行的
//根据返回值决定，是放行还是拦截
//返回值：
//1.undefined/true  直接放行
//2.false 拦回from的地址页面
//3.具体路径或路径对象 拦截到对应的地址
//    '/login'   {name:'login'}
router.beforeEach((to)=>{
  //如果没有token，且访问的是非登录页，拦截到登录，其他情况正常放行
  const useStore=useUserStore()
  if(!useStore.token && to.path!=='/login') return '/login'
  return true
})
export default router
